package com.ruoyi.system.navigationMark.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 航标基础信息对象 navigation_mark
 * 
 * @author ruoyi
 * @date 2025-11-21
 */
@Data
public class NavigationMark extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 航标记录主键ID */
    private Long id;

    /** 航标名称 */
    @Excel(name = "航标名称")
    private String markName;

    /** 所属航道 */
    @Excel(name = "所属航道")
    private String channel;

    /** 岸别 */
    @Excel(name = "岸别")
    private String bankSide;

    /** 航标类型 */
    @Excel(name = "航标类型")
    private String markType;

    /** 设地地点 */
    @Excel(name = "设地地点")
    private String location;

    /** 管养单位 */
    @Excel(name = "管养单位")
    private String managementUnit;

    /** 设置方式 */
    @Excel(name = "设置方式")
    private String setupMethod;

    /** 设标水深 */
    @Excel(name = "设标水深")
    private BigDecimal setupDepth;

    /** 安全距离 */
    @Excel(name = "安全距离")
    private Long safeDistance;

    /** 标体颜色 */
    @Excel(name = "标体颜色")
    private String markColor;

    /** 航标高度 */
    @Excel(name = "航标高度")
    private BigDecimal markHeight;

    /** 标体形状 */
    @Excel(name = "标体形状")
    private String markShape;

    /** 标体材质 */
    @Excel(name = "标体材质")
    private String markMaterial;

    /** 航标纬度 */
    @Excel(name = "航标纬度")
    private String latitude;

    /** 航标经度 */
    @Excel(name = "航标经度")
    private String longitude;

    /** 锚链长度 */
    @Excel(name = "锚链长度")
    private String chainLength;

    /** 是否发光 */
    @Excel(name = "是否发光")
    private Integer isLuminous;

    /** 是否遥测遥控 */
    @Excel(name = "是否遥测遥控")
    private Integer isRemoteMonitor;

    /** 仪器类型 */
    @Excel(name = "仪器类型")
    private String instrumentType;

    /** 灯光功率 */
    @Excel(name = "灯光功率")
    private Long lightPower;

    /** 额定电压 */
    @Excel(name = "额定电压")
    private String ratedVoltage;

    /** 透镜参数 */
    @Excel(name = "透镜参数")
    private Long lens;

    /** 光色 */
    @Excel(name = "光色")
    private String lightColor;

    /** 闪光类型 */
    @Excel(name = "闪光类型")
    private String flashType;

    /** 灯光视距 */
    @Excel(name = "灯光视距")
    private BigDecimal lightVisualRange;

    /** 航标识距 */
    @Excel(name = "航标识距")
    private BigDecimal markVisualRange;

    /** 灯光能源 */
    @Excel(name = "灯光能源")
    private String lightEnergySource;

    /** 电池类别 */
    @Excel(name = "电池类别")
    private String batteryType;

    /** 电池容量 */
    @Excel(name = "电池容量")
    private String batteryCapacity;

    /** 设标时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "设标时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date setupTime;

    /** 最近改造时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最近改造时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date latestModifyTime;

    /** 遥测号码 */
    @Excel(name = "遥测号码")
    private String remoteMonitorNumber;

    /** 图片 */
    @Excel(name = "图片")
    private String pic;

    /** 部门id */
    private Long deptId;

    /** 终端序列号 */
    private String zdXlh;



    /** 上传数据事件类型 */
    @Excel(name = "事件")
    private String eventType;

    /** 当前定位状态 */
    @Excel(name = "定位状态")
    private String dqGpsZt;

    /** 当前偏差距离 */
    @Excel(name = "偏差距离")
    private String dqGpsPcjl;

    /** 当前系统低功耗状态 */
    @Excel(name = "低功耗状态")
    private String xtZtDgh;

    /** 创建时间 */
    @Excel(name = "日志时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date hbcreateTime;

    /** 同步时间 */
    @Excel(name = "日志时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date hbupdateTime;

    /**
     * 上传数据日期
     */
    @Excel(name = "日志时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String eventTime;


    /**
     * 当前实时位置纬度
     */
    private String dqGpsLat;

    /**
     * 当前实时位置经度
     */
    private String dqGpsLon;


    /**
     * 当前卫星仰角
     */
    private String dqGpsWxyj;

    /**
     * 当前可视卫星通道数
     */
    private String dqGpsKswxtds;

    /**
     * 当前对地速度
     */
    private String dqGpsDdsd;

    /**
     * 当前gps定位精度
     */
    private String dqGpsDwjd;

    /**
     * 终端基点经度
     */
    private String zdGpsLon;

    /**
     * 终端基点纬度
     */
    private String zdGpsLat;

    /**
     * 终端位移阈值
     */
    private String zdGpsWyyz;

    /**
     * 终端漂移阈值
     */
    private String zdGpsPyyz;

    /**
     * 终端版本号
     */
    private String zdVersion;

    /**
     * 终端固件号1
     */
    private String zdGjh1;

    /**
     * 终端固件号2
     */
    private String zdGjh2;

    /**
     * 终端产品号
     */
    private String zdCph;


    /**
     * 心跳间隔(秒)
     */
    private String zdPeriod;

    /**
     * 消息超时时间(秒)
     */
    private String zdTimeout;

    /**
     * 消息重试次数
     */
    private String zdReconnectTimes;

    /**
     * 当前UTC时间戳
     */
    private String zdUtcTime;

    /**
     * 当前系统GPS天线检测状态
     */
    private String xtZtGps;

    /**
     * 当前系统终端GPS状态
     */
    private String xtZtZdgps;

    /**
     * 当前系统EPROM状态
     */
    private String xtZtEprom;

    /**
     * 当前系统AD状态
     */
    private String xtZtAd;

    /**
     * 当前系统扩展芯片检测状态
     */
    private String xtZtKzxp;

    /**
     * 当前系统充电/灯器控制器/电量测量芯片状态
     */
    private String xtZtCddqdl;


    /**
     * 航标灯设置GPS精度
     */
    private String hbdSzGps;

    /**
     * 航标灯设置电压门限设置允许位
     */
    private String hbdSzDymxszyxw;

    /**
     * 航标灯设置日光阈值设置允许位
     */
    private String hbdSzRgyzszyxw;

    /**
     * 航标灯设置串口灯质设置允许位
     */
    private String hbdSzCkdzszyxw;

    /**
     * 航标灯设置GPS定位设备
     */
    private String hbdSzGpsdwsb;

    /**
     * 航标灯设置运行模式
     */
    private String hbdSzYxms;

    /**
     * 航标灯设置强制工作模式
     */
    private String hbdSzQzgzms;

    /**
     * 航标灯设置强制工作
     */
    private String hbdSzQzgz;

    /**
     * 航标灯设置日光阈值
     */
    private String hbdSzRgyz;

    /**
     * 航标灯设置串口灯质
     */
    private String hbdSzCkdz;

    /**
     * 航标灯当前灯工作标志位
     */
    private String hbdDqDgzbzw;

    /**
     * 航标灯当前GPS精度
     */
    private String hbdDqGps;

    /**
     * 航标灯当前电压门限设置允许位
     */
    private String hbdDqDymxszyxw;

    /**
     * 航标灯当前日光阈值设置允许位
     */
    private String hbdDqRgyzszyxw;

    /**
     * 航标灯当前串口灯质设置允许位
     */
    private String hbdDqCkdzszyxw;

    /**
     * 航标灯当前GPS定位设备
     */
    private String hbdDqGpsdwsb;

    /**
     * 航标灯当前运行模式
     */
    private String hbdDqYxms;

    /**
     * 航标灯当前强制工作模式
     */
    private String hbdDqQzgzms;

    /**
     * 航标灯当前强制工作
     */
    private String hbdDqQzgz;

    /**
     * 航标灯当前日光阈值
     */
    private String hbdDqRgyz;

    /**
     * 航标灯当前串口灯质
     */
    private String hbdDqCkdz;

    /**
     * 航标灯拨码灯质
     */
    private String hbdDqBmdz;

    /**
     * 当前电气静态电压
     */
    private String dqDqJtdy;

    /**
     * 当前电气工作电压
     */
    private String dqDqGzdy;

    /**
     * 当前电气工作电流
     */
    private String dqDqGzdl;

    /**
     * 当前电气充电电压
     */
    private String dqDqCddy;

    /**
     * 当前电气充电电流
     */
    private String dqDqCddl;

    /**
     * 当前电气电压高门限
     */
    private String dqDqDygmx;

    /**
     * 当前电气电压低门限
     */
    private String dqDqDydmx;

    /**
     * 终端电板电气静态电压
     */
    private String zdDqJtdy;

    /**
     * 终端电板电气工作电压
     */
    private String zdDqGzdy;

    /**
     * 终端电板电气工作电流
     */
    private String zdDqGzdl;

    /**
     * 终端电板电气充电电压
     */
    private String zdDqCddy;

    /**
     * 终端电板电气充电电流
     */
    private String zdDqCddl;

    /**
     * 轮询时间
     */
    private String lxTime;

    /**
     * 点名时间
     */
    private String dmTime;

    /**
     * 报警时间
     */
    private String bjTime;

    /**
     * 平台控制命令
     */
    private String mlKzml;

    /**
     * 电量统计口径
     */
    private String dltjkj;

    /**
     * 充电电量
     */
    private String cddl;

    /**
     * 放电电量
     */
    private String fddl;

    /**
     * 是否轮询
     */
    private String mlZtSflx;

    /**
     * 是否报警
     */
    private String mlZtSfbj;

    /**
     * 是否点名
     */
    private String mlZtSfdm;

    /**
     * 碰撞标志位
     */
    private String mlPzPzbzw;

    /**
     * 三轴平方和碰撞阈值
     */
    private String mlPzPzyz;

    /**
     * 三轴平方和
     */
    private String mlPzSzpfh;

    /**
     * 航标X轴加速度
     */
    private String mlPzHbxjsd;

    /**
     * 航标Y轴加速度
     */
    private String mlPzHbyjsd;

    /**
     * 航标Z轴加速度
     */
    private String mlPzHbzjsd;

    /**
     * 倾角
     */
    private String mlPzQj;

    /**
     * 航标碰撞报警阈值
     */
    private String mlPzBjyz;

    /**
     * 报警参数
     */
    private String mlBjYz;

    /**
     * 删除标志（0代表存在,2代表删除）
     */
    private String delFlag;

    /**
     * 在离线0.离线.1在线
     */
    private String online;

    /**
     * 图层名称
     */
    private String layerName;

    /**
     * 航段
     */
    private String hdString;

    /**
     * 航标类型
     */
    private String hblxString;

    /**
     * 岸别
     */
    private String abString;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setMarkName(String markName) 
    {
        this.markName = markName;
    }

    public String getMarkName() 
    {
        return markName;
    }

    public void setChannel(String channel) 
    {
        this.channel = channel;
    }

    public String getChannel() 
    {
        return channel;
    }

    public void setBankSide(String bankSide) 
    {
        this.bankSide = bankSide;
    }

    public String getBankSide() 
    {
        return bankSide;
    }

    public void setMarkType(String markType) 
    {
        this.markType = markType;
    }

    public String getMarkType() 
    {
        return markType;
    }

    public void setLocation(String location) 
    {
        this.location = location;
    }

    public String getLocation() 
    {
        return location;
    }

    public void setManagementUnit(String managementUnit) 
    {
        this.managementUnit = managementUnit;
    }

    public String getManagementUnit() 
    {
        return managementUnit;
    }

    public void setSetupMethod(String setupMethod) 
    {
        this.setupMethod = setupMethod;
    }

    public String getSetupMethod() 
    {
        return setupMethod;
    }

    public void setSetupDepth(BigDecimal setupDepth) 
    {
        this.setupDepth = setupDepth;
    }

    public BigDecimal getSetupDepth() 
    {
        return setupDepth;
    }

    public void setSafeDistance(Long safeDistance) 
    {
        this.safeDistance = safeDistance;
    }

    public Long getSafeDistance() 
    {
        return safeDistance;
    }

    public void setMarkColor(String markColor) 
    {
        this.markColor = markColor;
    }

    public String getMarkColor() 
    {
        return markColor;
    }

    public void setMarkHeight(BigDecimal markHeight) 
    {
        this.markHeight = markHeight;
    }

    public BigDecimal getMarkHeight() 
    {
        return markHeight;
    }

    public void setMarkShape(String markShape) 
    {
        this.markShape = markShape;
    }

    public String getMarkShape() 
    {
        return markShape;
    }

    public void setMarkMaterial(String markMaterial) 
    {
        this.markMaterial = markMaterial;
    }

    public String getMarkMaterial() 
    {
        return markMaterial;
    }

    public void setLatitude(String latitude) 
    {
        this.latitude = latitude;
    }

    public String getLatitude() 
    {
        return latitude;
    }

    public void setLongitude(String longitude) 
    {
        this.longitude = longitude;
    }

    public String getLongitude() 
    {
        return longitude;
    }

    public void setChainLength(String chainLength) 
    {
        this.chainLength = chainLength;
    }

    public String getChainLength() 
    {
        return chainLength;
    }

    public void setIsLuminous(Integer isLuminous) 
    {
        this.isLuminous = isLuminous;
    }

    public Integer getIsLuminous() 
    {
        return isLuminous;
    }

    public void setIsRemoteMonitor(Integer isRemoteMonitor) 
    {
        this.isRemoteMonitor = isRemoteMonitor;
    }

    public Integer getIsRemoteMonitor() 
    {
        return isRemoteMonitor;
    }

    public void setInstrumentType(String instrumentType) 
    {
        this.instrumentType = instrumentType;
    }

    public String getInstrumentType() 
    {
        return instrumentType;
    }

    public void setLightPower(Long lightPower) 
    {
        this.lightPower = lightPower;
    }

    public Long getLightPower() 
    {
        return lightPower;
    }

    public void setRatedVoltage(String ratedVoltage) 
    {
        this.ratedVoltage = ratedVoltage;
    }

    public String getRatedVoltage() 
    {
        return ratedVoltage;
    }

    public void setLens(Long lens) 
    {
        this.lens = lens;
    }

    public Long getLens() 
    {
        return lens;
    }

    public void setLightColor(String lightColor) 
    {
        this.lightColor = lightColor;
    }

    public String getLightColor() 
    {
        return lightColor;
    }

    public void setFlashType(String flashType) 
    {
        this.flashType = flashType;
    }

    public String getFlashType() 
    {
        return flashType;
    }

    public void setLightVisualRange(BigDecimal lightVisualRange) 
    {
        this.lightVisualRange = lightVisualRange;
    }

    public BigDecimal getLightVisualRange() 
    {
        return lightVisualRange;
    }

    public void setMarkVisualRange(BigDecimal markVisualRange) 
    {
        this.markVisualRange = markVisualRange;
    }

    public BigDecimal getMarkVisualRange() 
    {
        return markVisualRange;
    }

    public void setLightEnergySource(String lightEnergySource) 
    {
        this.lightEnergySource = lightEnergySource;
    }

    public String getLightEnergySource() 
    {
        return lightEnergySource;
    }

    public void setBatteryType(String batteryType) 
    {
        this.batteryType = batteryType;
    }

    public String getBatteryType() 
    {
        return batteryType;
    }

    public void setBatteryCapacity(String batteryCapacity) 
    {
        this.batteryCapacity = batteryCapacity;
    }

    public String getBatteryCapacity() 
    {
        return batteryCapacity;
    }

    public void setSetupTime(Date setupTime) 
    {
        this.setupTime = setupTime;
    }

    public Date getSetupTime() 
    {
        return setupTime;
    }

    public void setLatestModifyTime(Date latestModifyTime) 
    {
        this.latestModifyTime = latestModifyTime;
    }

    public Date getLatestModifyTime() 
    {
        return latestModifyTime;
    }

    public void setRemoteMonitorNumber(String remoteMonitorNumber) 
    {
        this.remoteMonitorNumber = remoteMonitorNumber;
    }

    public String getRemoteMonitorNumber() 
    {
        return remoteMonitorNumber;
    }

    public void setPic(String pic) 
    {
        this.pic = pic;
    }

    public String getPic() 
    {
        return pic;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public void setZdXlh(String zdXlh) {
        this.zdXlh = zdXlh;
    }

    public Long getDeptId() {
        return deptId;
    }

    public String getZdXlh() {
        return zdXlh;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("markName", getMarkName())
            .append("channel", getChannel())
            .append("bankSide", getBankSide())
            .append("markType", getMarkType())
            .append("location", getLocation())
            .append("managementUnit", getManagementUnit())
            .append("setupMethod", getSetupMethod())
            .append("setupDepth", getSetupDepth())
            .append("safeDistance", getSafeDistance())
            .append("markColor", getMarkColor())
            .append("markHeight", getMarkHeight())
            .append("markShape", getMarkShape())
            .append("markMaterial", getMarkMaterial())
            .append("latitude", getLatitude())
            .append("longitude", getLongitude())
            .append("chainLength", getChainLength())
            .append("isLuminous", getIsLuminous())
            .append("isRemoteMonitor", getIsRemoteMonitor())
            .append("instrumentType", getInstrumentType())
            .append("lightPower", getLightPower())
            .append("ratedVoltage", getRatedVoltage())
            .append("lens", getLens())
            .append("lightColor", getLightColor())
            .append("flashType", getFlashType())
            .append("lightVisualRange", getLightVisualRange())
            .append("markVisualRange", getMarkVisualRange())
            .append("lightEnergySource", getLightEnergySource())
            .append("batteryType", getBatteryType())
            .append("batteryCapacity", getBatteryCapacity())
            .append("setupTime", getSetupTime())
            .append("latestModifyTime", getLatestModifyTime())
            .append("remoteMonitorNumber", getRemoteMonitorNumber())
            .append("pic", getPic())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("deptId", getDeptId())
            .append("zdXlh", getZdXlh())
            .toString();
    }
}
